Non-volatile memory devices store information, which must be preserved even when a power supply feeding the memory device is off. These memory devices are commonly used as external peripherals (by a processing unit) in several applications.
A particular type of non-volatile memory device is a flash E2PROM (or simply flash memory). A flash memory consists of a matrix of memory cells, each one formed by a single transistor. This results in a very simple structure of the flash memory, which can be manufactured at low cost and with high density. As a consequence, the flash memory is well suited to a number of end-product applications, such as mobile telephones, automotive devices, digital still cameras, hand-held computers, and the like.
A drawback of flash memories is that they must be erased in blocks. The smallest dimension of the block that can be used in practice at a reasonable cost amounts to a few kilobytes. However, the resolution so achieved is insufficient for several applications requiring the ability to modify information at the word, byte, or even bit level. As a consequence, complex Systems on Chips (SOCs) embedding both a flash memory and an E2PROM (which can be erased a bit at a time) are often required.
A different solution known in the art is that of using only the flash memory for storing both persistent information (such as program code) and information that needs to be updated (such as data). The data stored in the flash memory is managed by a software program, which controls and organizes the flash memory so as to emulate the behavior of an E2PROM. The data management software is stored in the flash memory, and runs on the processing unit that employs the flash memory as an external peripheral; the flash memory has a multiple-bank architecture, so that instructions of the data management software may be fetched and executed from one bank while another bank is being programmed or erased. In this way, the capacity of the non-volatile memory device is increased (for the same cost) or its cost is reduced (for the same capacity).
A drawback of the solution described above is that the running of the data management software involves an overload of the processing unit; as a consequence, the performance of a whole system (including the flash memory and the processing unit) is reduced.
Moreover, a large amount of data must be transmitted (typically on a communication bus) between the flash memory and the processing unit. The high traffic on the communication bus increases the power consumption of the system. This drawback is particular acute in portable systems (such as mobile telephones), which are supplied by a battery.